// fileMover.js
const fs = require('fs');
const path = require('path');

/**
 * 将指定目录下的所有文件移动到目标目录
 * @param {string} sourceDir - 源目录路径
 * @param {string} targetDir - 目标目录路径
 * @returns {Promise<void>} - 返回一个 Promise 对象
 */
function moveFiles(sourceDir, targetDir) {
    return new Promise((resolve, reject) => {
        // 确保目标目录存在
        if (!fs.existsSync(targetDir)) {
            fs.mkdirSync(targetDir, { recursive: true });
        }

        // 读取源目录中的所有文件
        fs.readdir(sourceDir, (err, files) => {
            if (err) {
                return reject(`读取目录失败: ${err.message}`);
            }

            let fileMoves = files.map(file => {
                return new Promise((resolveFile, rejectFile) => {
                    const sourcePath = path.join(sourceDir, file);
                    const targetPath = path.join(targetDir, file);

                    // 移动文件
                    fs.rename(sourcePath, targetPath, (err) => {
                        if (err) {
                            return rejectFile(`移动文件失败 (${file}): ${err.message}`);
                        }
                        resolveFile();
                        console.log(`成功移动上次运行文件到“lastRunDataBackup”目录下 (${file})`);

                    });
                });
            });

            // 等待所有文件移动完成
            Promise.all(fileMoves)
                .then(() => resolve())
                .catch(reject);
        });
    });
}

module.exports = moveFiles;